package cn.edu.zxj.order.service.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * Created with IntelliJ IDEA.
 * Description：
 *
 * @author: zxj
 * @date: 2024-09-28
 * @time: 13:17:08
 */

/*
    @LoadBalancerClient 注解说明
        1. name: 该负载均衡策略对哪个服务⽣效(服务提供⽅)
        2. configuration : 该负载均衡策略 ⽤哪个负载均衡策略实现. 该配置类需要实现ReactorLoadBalancer接⼝
            LoadBalancerConfig 类中的 randomLoadBalancer ⽅法返回⼀个RandomLoadBalancer实例, 随机负载均衡策略
    不加该注解, 默认使⽤轮询负载均衡策略
 */
// @LoadBalancerClient(name = "product-service", configuration = LoadBalancerConfig.class)
@Configuration
public class BeanConfig {
    @Bean // 注入RestTemplate, 用于HTTP请求
    @LoadBalanced // 开启负载均衡
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
